package com.ruoyi.ratelimit;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Target(ElementType.METHOD) // 表明该注解只能用于方法上
@Retention(RetentionPolicy.RUNTIME) // 注解在运行时生效
@Documented
public @interface RateLimit {
    /**
     * 令牌生成速率（每秒允许的请求数）
     */
    double value() default 10.0;

    /**
     * 获取令牌的最大等待时间（默认为0，不等待）
     */
    long timeout() default 0;

    /**
     * 超时时间单位
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;
}
